package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.PayRecordDto;
import io.geekidea.boot.test.entity.PayRecord;
import io.geekidea.boot.test.query.PayRecordQuery;
import io.geekidea.boot.test.vo.PayRecordVo;
import io.geekidea.boot.test.query.AppPayRecordQuery;
import io.geekidea.boot.test.vo.AppPayRecordVo;


/**
 * 消费记录 服务接口
 *
 * @author geekidea
 * @since 2025-03-26
 */
public interface PayRecordService extends IService<PayRecord> {

    /**
     * 添加消费记录
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addPayRecord(PayRecordDto dto);

    /**
     * 修改消费记录
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updatePayRecord(PayRecordDto dto);

    /**
     * 删除消费记录
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deletePayRecord(Long id);

    /**
     * 消费记录详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    PayRecordVo getPayRecordById(Long id);

    /**
     * 消费记录分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<PayRecordVo> getPayRecordPage(PayRecordQuery query);

    /**
     * App消费记录详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppPayRecordVo getAppPayRecordById(Long id);

    /**
     * App消费记录分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppPayRecordVo> getAppPayRecordPage(AppPayRecordQuery query);

}
